package cn.tedu.fy.pethome.mapper;

import cn.tedu.fy.pethome.pojo.entity.Cart;
import cn.tedu.fy.pethome.pojo.vo.CartStandardVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface CartMapper {

    /**
     * 判断当前用户的购物车中是否已经包含指定sku的商品
     * @param userId
     * @param skuId
     * @return
     */
    Cart selectExistsCart(@Param("userId") Long userId,
                          @Param("skuId") Long skuId);

    /**
     * 新增sku信息到购物车表
     * @param cart
     */
    void saveCart(Cart cart);

    /**
     * 修改购物车中指定sku的数量
     * @param cart
     */
    void updateQuantityById(Cart cart);

    /**
     * 根据用户id查询购物车中sku信息
     * @param userId
     * @return
     */
    List<CartStandardVO> selectCartsByUserId(Long userId);

    /**
     * 根据参数数组中的id,删除购物车中商品(支持删除多个商品的)
     * @param id
     * @return
     */
    int deleteCartsByIds(Long id);

    /**
     * 清空指定用户购物车中所有商品的方法
     * @param userId
     * @return
     */
    int deleteCartsByUserId(Long userId);

    /**
     * 根据用户id和skuId删除商品
     * @param cart
     */
    void deleteCartByUserIdAndSkuId(Cart cart);
}
